/**
 * 
 */
package org.abettor.smartswt.global;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import org.eclipse.swt.widgets.Widget;

/**
 * 某一个Shell里的所有组件的索引信息
 * @author abettor
 *
 */
public class WidgetList
{
	//	用于存储组件索引的 MAP
	private Map<String, Widget> widgets = null;

	/**
	 * 默认构造函数
	 *
	 */
	public WidgetList()
	{
		widgets = Collections.synchronizedMap(new HashMap<String, Widget>());
	}

	/**
	 * 添加一个组件
	 * @param name 组件标识符
	 * @param widget 组件的引用
	 */
	public void put(String name, Widget widget)
	{
		widgets.put(name, widget);
	}

	/**
	 * 根据组件标识符获取组件的引用
	 * @param name 组件标识符
	 * @return 组件的引用
	 */
	public Widget get(String name)
	{
		return widgets.get(name);
	}

	/**
	 * 删除组件标识符所指定的组件信息
	 * @param name 组件标识符
	 */
	public void remove(String name)
	{
		widgets.remove(name);
	}

	/**
	 * 获取组件标识符的迭代器
	 * @return 一个指向组件标识符集合的迭代器
	 */
	public Iterator widgetNameIterator()
	{
		Set set = widgets.keySet();
		return set.iterator();
	}
}
